
package eletrotudo3;

import java.util.Iterator;
import java.util.TreeSet;


public class Colecoes {
  private  TreeSet<Cliente> colecaoCliente= new TreeSet();
  private  TreeSet<Peca> colecaoPecas= new TreeSet();
  private  TreeSet<Fornecedor> colecaoFornecedor= new TreeSet();
  private  TreeSet<Funcionario> colecaoFuncionario=new TreeSet();
  private  TreeSet<Conserto> colecaoConserto=new TreeSet();

   
    public Colecoes() {
        // Coloca objetos nas coleções
        // Colecao de Clientes
       
        Cliente c=new Cliente("jao","7777777","rua tal");
        Cliente c1=new Cliente("Adamastor","777788","rua vazia");
        Cliente c2=new Cliente("Capitão Planeta","7777777"," rua feia");
        colecaoCliente.add(c);
        colecaoCliente.add(c1);
        colecaoCliente.add(c2);
        // Colecao de Fornecedor
        Fornecedor forn=new Fornecedor("Pecas legais LTDA", "11.444.7770001-XX.", "pecalegais@pecas.com","(28)56768909", "Brasil sil sil");

        colecaoFornecedor.add(forn);
        // Colecao de Pecas
        Peca p=new Peca("0192asd", "Repimboca", forn, 22);
        Peca p1=new Peca("asd2323", "Repimboca Duas Polegadas", forn, 24);
        Peca p2=new Peca("asd3245", "Parafuseta", forn, 33);
        colecaoPecas.add(p);
        colecaoPecas.add(p1);
        colecaoPecas.add(p2);
        //colecao Funcionarios
        Administrador f=new Administrador("Asdrubal", "admin","admin");
        Funcionario f1=new Funcionario("Asdrubal jr", "asdr","123");
        colecaoFuncionario.add(f);
        colecaoFuncionario.add(f1);
        // Colecao Consertos
        Conserto con= new Conserto("asdas1233dasd","Problemas na tela","PC do milhão",c1,0);
        Conserto con1= new Conserto("1232asd","Problemas no motor","Maquina de lavar brastur 1128x2",c2,123.50);
        colecaoConserto.add(con);
        colecaoConserto.add(con1);
    }
  
    public void addConserto(Conserto c){
        colecaoConserto.add(c);
    }
    
    
    
    public void mostraCliente(){
        Iterator<Cliente> i=colecaoCliente.iterator();
        while(i.hasNext()){
            Cliente p=i.next();
            System.out.println(p);
            
        }
    }
    
    public void addCliente(Cliente f){
        colecaoCliente.add(f);
    }
    
    public boolean excluiCliente(String nome){
        
        Iterator<Cliente> i=colecaoCliente.iterator();
        Cliente p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getNome())){
                
                i.remove();
                return true;
            }
        }
        return false;
    }
    
    public Cliente procuraCliente(String nome){
        Iterator<Cliente> i=colecaoCliente.iterator();
        Cliente p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getNome())){
                
                return p;
                
            }
        }
        return null;
    }
    
    
    
     public void lancaOrcamento(String cod, Double valor){
         Iterator<Conserto> i=colecaoConserto.iterator();
        Conserto p;
        while(i.hasNext()){
            p=i.next();
            if(cod.equals(p.getCodConserto())){
                p.setOrcamento(valor);
            }
        }
        
     }
    
     public void autorizarConserto(String cod){
        Iterator<Conserto> i=colecaoConserto.iterator();
        Conserto p;
        while(i.hasNext()){
            p=i.next();
            if(cod.equals(p.getCodConserto())){
                p.setValidado(true);
            }
        }
     }
     
    public void excluiConserto(String cod){
        
        Iterator<Conserto> i=colecaoConserto.iterator();
        Conserto p;
        while(i.hasNext()){
            p=i.next();
            if(cod.equals(p.getCodConserto())){
                
                i.remove();
                
            }
        }
        
    }
    
  
    
     public void addFornecedor(Fornecedor f){
        colecaoFornecedor.add(f);
    }
     
     public void mostraFornecedor(){
        Iterator<Fornecedor> i=colecaoFornecedor.iterator();
        while(i.hasNext()){
            Fornecedor p=i.next();
            System.out.println(p);
            
        }
    }
     
    public Fornecedor alteraFornecedor(String nome){
        Iterator<Fornecedor> i=colecaoFornecedor.iterator();
        Fornecedor p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getCNPJ())){
                
                this.colecaoFornecedor.remove(p);
                return p;
            }
            
        }
        return null;
        
    }
     
    public void addFuncionario(Funcionario f){
        colecaoFuncionario.add(f);
    }
   
     public boolean excluiFornecedor(String nome){
        Iterator<Fornecedor> i=colecaoFornecedor.iterator();
        Fornecedor p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getCNPJ())){
                
                this.colecaoFornecedor.remove(p);
                return true;
            }
        }
        return false;
    }
    
    public void mostraFuncionarios(){
        Iterator<Funcionario> i=colecaoFuncionario.iterator();
        while(i.hasNext()){
            Funcionario p=i.next();
            System.out.println(p);
            
        }
    }
    
    public void addPeca(Peca peca){
        colecaoPecas.add(peca);
    }
    
    public void mostraPeca(){
        Iterator<Peca> i=colecaoPecas.iterator();
        while(i.hasNext()){
            Peca p=i.next();
            System.out.println(p);
            
        }
    }
    
    public void mostraConserto(){
        Iterator<Conserto> i=colecaoConserto.iterator();
        Conserto p;
        while(i.hasNext()){
            p=i.next();
            System.out.println(p);
            
        }
    }
    public Peca alteraPeca(String nome){
        Iterator<Peca> i=colecaoPecas.iterator();
        Peca p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getCodPeca())){
                
                this.colecaoPecas.remove(p);
                return p;
            }
            
        }
        return null;
        
    } // exclui e retorna a peça da chave passada como parametro
    
    public boolean excluiPeca(String nome){
        Iterator<Peca> i=colecaoPecas.iterator();
        Peca p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getCodPeca())){
                
                i.remove();
                return true;
            }
        }
        return false;
    }
    
    public boolean excluiFuncionario(String nome){
        Iterator<Funcionario> i=colecaoFuncionario.iterator();
        Funcionario p;
        while(i.hasNext()){
            p=i.next();
            if(nome.equals(p.getNome())){
                
                i.remove();
                return true;
            }
        }
        return false;
    }
    
    public Funcionario pesquisaNomeFuncionario(String chave){
        
        Iterator<Funcionario> i=colecaoFuncionario.iterator();
        while(i.hasNext()){
            Funcionario p=i.next();
            if(chave.equals(p.getNome()))
                return p;
        }
        return null;
    }
    
    public Funcionario pesquisaSenhaFuncionario(String chave){
        
        Iterator<Funcionario> i=colecaoFuncionario.iterator();
        while(i.hasNext()){
            Funcionario p=i.next();
            if(chave.equals(p.getSenha()))
                return p;
        }
        return null;
    }
   
    public Funcionario pesquisaLoginFuncionario(String chave){
        
        Iterator<Funcionario> i=colecaoFuncionario.iterator();
        while(i.hasNext()){
            Funcionario p=i.next();
            if(chave.equalsIgnoreCase(p.getLogin()))
                return p;
        }
        return null;
    }
   
   public boolean pesquisaCliente(String nome){
       Iterator<Cliente> i=colecaoCliente.iterator();
        while(i.hasNext()){
            Cliente p=i.next();
            if(nome.equalsIgnoreCase(p.getNome()))
                return true;}
        return false;
   }
}
